﻿using PorterStemmerAlgorithm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace Lab1.DataObjects
{
    internal class Document
    {
        public Document(string title, string content)
        {
            _title = title;
            _content = content;
            _titleStemmed = Stemmer.stemTerm(Regex.Replace(_title.ToLower(), @"[^\w\s]", ""));
            _contentStemmed = Stemmer.stemTerm(Regex.Replace(_content.ToLower(), @"[^\w\s]", ""));
        }

        private string _title { get; set; }

        public string Title
        {
            get
            {
                return _title;
            }
        }

        private string _content { get; set; }

        public string Content 
        {
            get
            {
                return _content;
            }
        }

        private string _titleStemmed { get; set; }

        public string TitleStemmed
        {
            get
            {
                return _titleStemmed;
            }
        }

        private string _contentStemmed { get; set; }

        public string ContentStemmed
        {
            get
            {
                return _contentStemmed;
            }
        }

        private IStemmerInterface _stemmer { get; set; }
        private IStemmerInterface Stemmer
        {
            get
            {
                if (_stemmer == null)
                    _stemmer = new PorterStemmer();
                return _stemmer;
            }
        }

        public override string ToString()
        {
            return Title + " " + Content;
        }
    }
}
